/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.escritura;

import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 *
 * @author roniere
 */
public class TxtToBD {
    
    public static void main(String[] args) throws FileNotFoundException, IOException, ParseException{
        InputStreamReader isr = new InputStreamReader(new FileInputStream("/opt/ESC2013.txt"));
        BufferedReader in = new BufferedReader(isr);
        String s;
        List<EscrituraOld> list = new ArrayList<EscrituraOld>();
        while ((s = in.readLine()) != null) {
            String[] campo = s.split(";");
            EscrituraOld eo = new EscrituraOld();
            eo.setLiv(campo[1].replace("E", "").replace("\"", ""));
            eo.setFls(campo[2].replace("\"", ""));
            eo.setOut(campo[4].replace("\"", ""));
            eo.setOud(campo[5].replace("\"", ""));
            eo.setDat(campo[9].replace("\"", "").replace("1913", "2013"));
            list.add(eo);
            eo = new EscrituraOld();
        }
        
        List<EscrituraOld> prim = new ArrayList<EscrituraOld>();
        List<EscrituraOld> seco = new ArrayList<EscrituraOld>();
        SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        
        for (EscrituraOld escrituraOld : list) {
            if(!sdf1.parse(escrituraOld.getDat()).after(sdf1.parse("15/01/2013 00:00:00"))){
                prim.add(escrituraOld);
            }else{
                seco.add(escrituraOld);
            }
        }
        
        importTxtEscritura(prim, "PRIMEIRA");
        importTxtEscritura(seco, "SEGUNDA");
    
    }
    
     public static void importTxtEscritura(List<EscrituraOld> list, String nameFile) throws IOException{
        Map<String, String> key = new HashMap<String, String>();
        key.put("4", "6");
        key.put("14", "35");
        key.put("15", "10");
        key.put("37", "5");
        key.put("9", "14");
        key.put("51", "17");
        key.put("8", "21");
        key.put("49", "53");
        key.put("5", "22");
        key.put("24", "23");
        key.put("54", "54");
        key.put("48", "24");
        key.put("10", "25");
        key.put("52", "28");
        key.put("33", "30");
        key.put("18", "33");
        key.put("56", "34");
        key.put("22", "36");
        
        System.err.println("Qtd List: "+list.size());
        BufferedWriter writer = new BufferedWriter(new FileWriter("/opt/"+nameFile+""+new Date()+".txt"));  
        writer.write("\"TIPOATOCEP\";\"NATUREZAESCRITURA\";\"DATAATO\";\"LIVRO\";\"LIVROCOMPLEMENTO\";\"FOLHA\";\"FOLHACOMPLEMENTO\";\"VALOR\";\"DESCONHECIDO\";\"REFERENTELIVRO\";\"REFERENTELIVROCOMPLEMENTO\";\"REFERENTEFOLHA\";\"REFERENTEFOLHACOMPLEMENTO\";\"REFERENTEUFORIGEM\";\"REFERENTECIDADEORIGEM\";\"REFERENTECARTORIO\";\"PARTENOME\";\"PARTEIDENTIDADE\";\"PARTEORGAOEMISSOR\";\"PARTETIPODOCUMENTO\";\"PARTENUMERODOCUMENTO\";\"PARTEQUALIDADE\""+"\r");
        
        for (EscrituraOld eo : list) {
            Escritura e = new Escritura();
            Escritura e2 = new Escritura();
            
            e.setTIPOATOCEP("1");
            e.setNATUREZAESCRITURA(key.get(eo.getTip()) == null ? "51" : key.get(eo.getTip()));
            e.setDATAATO(eo.getDat());
            e.setLIVRO(eo.getLiv());
            e.setFOLHA(eo.getFls());
            
            //OUTORGANTE
            if(eo.getOut() != null && !eo.getOut().equals(".") && !eo.getOut().trim().equals("")){
                e.setPARTENOME(eo.getOut());
                e.setPARTEQUALIDADE("Outorgante");
                
                if(eo.getCpfof() == null && eo.getCpfoj() != null){
                    e.setPARTETIPODOCUMENTO(eo.getCpfoj() == null ? "" :"CNPJ");
                    e.setPARTENUMERODOCUMENTO(eo.getCpfoj());
                }else{
                    e.setPARTETIPODOCUMENTO(eo.getCpfof() == null ? "" : "CPF");
                    e.setPARTENUMERODOCUMENTO(eo.getCpfof());
                }
                writer.write(e.toString().replace("\"null\"", "\"\"") + "\r");
                writer.newLine();
                
            }
            
            //OUTORGADO
            if(eo.getOud() != null &&  !eo.getOud().equals(".") && !eo.getOut().trim().equals("")){
                e2 = e;
                e2.setPARTEQUALIDADE("Outorgado");
                e2.setPARTENOME(eo.getOud());
              if(eo.getCpfdf() == null && eo.getCpfdj() != null){
                    e2.setPARTETIPODOCUMENTO(eo.getCpfdj() == null ? "" : "CNPJ");
                    e2.setPARTENUMERODOCUMENTO(eo.getCpfdj());
              }else{
                   e2.setPARTETIPODOCUMENTO(eo.getCpfdf() == null ? "" : "CPF");
                   e2.setPARTENUMERODOCUMENTO(eo.getCpfdf());
              }
              writer.write(e2.toString().replace("\"null\"", "\"\"") + "\r");
              writer.newLine();
            }
        }
        writer.flush();  
        writer.close();
        System.err.println("FINALIZOU");
    }
}
